home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 4 / FM Towns Free Software Collection 4 - Disc 1.iso / msdos / let / environ.h < prev    next >
C/C++ Source or Header  |  1991-10-18  |  1KB  |  37 lines

  1. /*
  2.     環境変数領域操作関数(LsiC/HighC用)  by Y.Kurihara (Nifty PDC01620)
  3. */
  4.  
  5. #if  defined( __HIGHC__ )
  6.     #define Fchar  _far unsigned char
  7.     #define Fint   _far unsigned short
  8.     #define FARPTR(seg,off) ( fp_dos+(unsigned)(seg)*16+(unsigned)(off) )
  9.     extern  Fchar  *fp_dos;
  10.     extern  Fchar  *fp_psp;
  11. #endif
  12.  
  13. #if  defined( LSI_C )
  14.     #define Fchar  unsigned char far
  15.     #define Fint   unsigned int  far
  16.     #define FARPTR(seg,off) \
  17.         ( (Fchar *)((unsigned long)(seg)*0x10000+(unsigned)(off)) )
  18. #endif
  19.  
  20. #define PSP_parent(psp)  ( *(Fint *)FARPTR((psp),0x16) )
  21. #define PSP_environ(psp) ( *(Fint *)FARPTR((psp),0x2c) )
  22. #define MCB_mark(seg)    ( *(Fchar*)FARPTR((seg-1),0x00) )
  23. #define MCB_owner(seg)   ( *(Fint *)FARPTR((seg-1),0x01) )
  24. #define MCB_size(seg)    ( *(Fint *)FARPTR((seg-1),0x03) )
  25. #define MCB_next(seg)    ( (unsigned)(seg)+MCB_size(seg)+1 )
  26.  
  27. int getpid( void );                /* プロセスIDを得る */
  28. int getrpid( void );                /* rootのPSPを得る */
  29. int getppid( void );                /* 親のPSPを得る */
  30. int getcpid( void );                /* shellのPSPを得る */
  31. int pspenv( int psp );                /* 環境変数領域を得る */
  32. int envdel( char *var,int env );        /* 環境変数の削除 */
  33. int envset( char *var,char *val,int env );    /* 環境変数の変更 */
  34. char *envget( char *var,int env );        /* 環境変数の値を得る */
  35. char *envpath( int env );            /* 環境からパス名を得る */
  36.  
  37.